package com.gomore.opple.module.main.mine;

import com.gomore.opple.BasePresenter;
import com.gomore.opple.BaseView;
import com.gomore.opple.rest.applybill.ApplyRequest;
import com.gomore.opple.rest.applybill.EarningsResponse;
import com.gomore.opple.rest.employee.LoginResult;
import com.gomore.opple.web.cgform.applybill.entity.TOApplyBillEntity;
import com.gomore.opple.web.cgform.consumer.entity.TOConsumerEntity;

import okhttp3.MultipartBody;

/**
 * Created by asus on 2016/12/27.
 */
public interface MineContract {

    interface View extends BaseView<Presenter> {
        /**
         * 显示进度条
         */
        void showProgressDialog();

        /**
         * 隐藏进度条
         */
        void hideProgressDialog();

        /**
         * 展示消息
         *
         * @param msg 消息
         */
        void showMessage(String msg);

        /**
         * 展示消息
         *
         * @param msgId 消息id
         */
        void showMessage(int msgId);

        /**
         * 展示头像
         *
         * @param url
         */
        void showIcon(String url);

        /**
         * 展示内容
         */
        void showContentView(EarningsResponse earningsResponse);

        /**
         * 申请提现后的对话框
         *
         * @param applyId
         */
        void showApplyAfaterDialog(String applyId);

        /**
         * 跳到登陆页
         */
        void gotoLoginActivity();

        /**
         * 跳转到提现明细
         *
         * @param toApplyBillEntity
         */
        void goToApplyDetail(TOApplyBillEntity toApplyBillEntity);

    }

    interface Presenter extends BasePresenter {
        /**
         * 准备初始化数据
         */
        void prepareInitData();

        /**
         * 获取我的信息
         */
        void getTotal();

        /**
         * 获取信息
         *
         * @return
         */
        EarningsResponse getData();

        /**
         * 解绑银行卡
         *
         * @param bankNumber
         */
        void deleteBankCard(String bankNumber);

        /**
         * 提现申请保存
         *
         * @param applyRequest
         */
        void applySave(ApplyRequest applyRequest);

        /**
         * 获取客户信息
         *
         * @return
         */
        TOConsumerEntity getConsumer();

        /**
         * 退出登录
         */
        void logout();

        /**
         * 获取用户信息
         *
         * @return
         */
        LoginResult getUser();

        /**
         * 修改密码
         *
         * @param oldPassword
         * @param newPassword
         */
        void modifyPassword(String oldPassword, String newPassword);

        /**
         * 上传附件
         *
         * @param file
         */
        void saveAttachment(MultipartBody.Part file);

        /**
         * 修改员工信息
         *
         * @param url
         */
        void saveEmployee(String url);

        /**
         * 获取提现明细
         *
         * @param uuid
         */
        void getDetailState(String uuid);
    }
}
